﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.Xml;
using Microsoft.Win32;
using System.ComponentModel;


namespace FelixGameNS
{
    public enum Align
    {
        LeftTop, Left, LeftBottom, CenterTop, Center,
        CenterBottom, RightTop, Right, RightBottom
    };

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// <summary>
    /// serializálható Dictionary, hogy tudjuk fájlba írni
    /// </summary>
    /// <typeparam name="TKey">TKey</typeparam>
    /// <typeparam name="TValue">TValue</typeparam>
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    [XmlRoot("dictionary")]
    public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IXmlSerializable
    {
        #region IXmlSerializable Members
        /// <summary>
        /// GetSchema
        /// </summary>
        /// <returns>null</returns>
        public System.Xml.Schema.XmlSchema GetSchema()
        {
            return null;
        }
        /// <summary>
        /// ReadXml
        /// </summary>
        /// <param name="reader">XmlReader param</param>
        public void ReadXml(System.Xml.XmlReader reader)
        {
            XmlSerializer keySerializer = new XmlSerializer(typeof(TKey));
            XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue));

            bool wasEmpty = reader.IsEmptyElement;
            reader.Read();

            if (wasEmpty)
                return;

            while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
            {
                reader.ReadStartElement("item");
                reader.ReadStartElement("key");

                TKey key = (TKey)keySerializer.Deserialize(reader);
                reader.ReadEndElement();
                reader.ReadStartElement("value");

                TValue value = (TValue)valueSerializer.Deserialize(reader);
                reader.ReadEndElement();

                this.Add(key, value);
                reader.ReadEndElement();

                reader.MoveToContent();
            }
            reader.ReadEndElement();
        }


        /// <summary>
        /// WriteXml
        /// </summary>
        /// <param name="writer">XmlWriter param</param>
        public void WriteXml(System.Xml.XmlWriter writer)
        {
            XmlSerializer keySerializer = new XmlSerializer(typeof(TKey));
            XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue));

            foreach (TKey key in this.Keys)
            {
                writer.WriteStartElement("item");
                writer.WriteStartElement("key");

                keySerializer.Serialize(writer, key);
                writer.WriteEndElement();

                writer.WriteStartElement("value");
                TValue value = this[key];

                valueSerializer.Serialize(writer, value);
                writer.WriteEndElement();

                writer.WriteEndElement();
            }
        }
        #endregion
    }

    public enum Cselekvesek
    {
        etetés,
        séta,
        pihenés,
        játék,
        orvos,
        kozmetika,
    };
    public enum Napszakok
    {
        reggel,
        déletőtt,
        délután,
        este,
    };

    public enum Napok
    {
        hétfő,
        kedd,
        szerda,
        csütörtök,
        péntek,
        szombat,
        vasárnap,
    };
    public enum teljesKepernyo
    {
        [Description("teljes képernyő")]
        fullscreen,
        [Description("ablakba")]
        windowed,
    };


}
